/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Controladores;

import Beans.Cotizacion;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ConcurrentModificationException;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author Leyner Cordoba Mosquera
 */
public class Mcotizacion {

    private List<Cotizacion> Cotizaciones = new LinkedList<Cotizacion>();
    File archivo;
    Cotizacion ct = new Cotizacion();

    public List<Cotizacion> getCotizaciones() {
        return Cotizaciones;
    }

    public void setCotizaciones(List<Cotizacion> Cotizaciones) {
        this.Cotizaciones = Cotizaciones;
    }

    public File getArchivo() {
        return archivo;
    }

    public void setArchivo(File archivo) {
        this.archivo = archivo;
    }


     public void grabar() throws IOException {
      FileOutputStream   flujoSalida  = new FileOutputStream(archivo);
      ObjectOutputStream objetoSalida = new ObjectOutputStream(flujoSalida);
      objetoSalida.writeObject(this.getCotizaciones());
      objetoSalida.close();
     }


    public void restaurar() throws IOException,ClassNotFoundException {
        if(archivo.exists()==true){
            FileInputStream flujoEntrada    = new FileInputStream(archivo);
  	    ObjectInputStream objetoEntrada = new ObjectInputStream(flujoEntrada);
            List<Cotizacion> cot = (List) objetoEntrada.readObject();
            this.setCotizaciones(cot);
            objetoEntrada.close();
        }
    }

     public Boolean Existe(int cod){
        boolean sw=false;
        Iterator it = getCotizaciones().iterator();
        while(it.hasNext()){
            ct = (Cotizacion)it.next();
            if(ct.getCodigo()==cod){
                sw=true;
            }
        }
        return sw;
    }

     public boolean  Consultar(String pro){
        Iterator it = getCotizaciones().iterator();
        int x = 0;
        while(it.hasNext()){
            x=x;
            Cotizacion ct = (Cotizacion)it.next();
              if(ct.getArticulo().get(x).getNombre().equals(pro)){
                 return true;
              }
            x=x+1;
         }
        return false;
     }

   public int GenerarCodigo(){
        int codigo= 0;
        int limite = 10000;
        Random r = new Random();
        codigo = r.nextInt(limite+1);
       return codigo;

    }


 public void Registrar(Cotizacion ct){
         if(!Existe(ct.getCodigo())){
             getCotizaciones().add(ct);
             JOptionPane.showMessageDialog(null,"Se ha registrado la cotizacion"
                     + " Satisfactoriamente","INFORMACION",JOptionPane.INFORMATION_MESSAGE);
         }
      }

 public void Eliminar(int cod){
        try{
             Iterator ita = getCotizaciones().iterator();
             while(ita.hasNext()){
                 ct= (Cotizacion)ita.next();
                 if(ct.getCodigo()==cod){
                     getCotizaciones().remove(ct);
                    try {
                        this.grabar();
                    } catch (IOException ex) {
                        Logger.getLogger(Marticulos.class.getName()).log(Level.SEVERE, null, ex);
                    }
                     JOptionPane.showMessageDialog(null,"Eliminado satisfactoriamente");
                 }
             }
        }catch(ConcurrentModificationException e){
        }
    }
}
